package com.tedu.api.thread;

/**
 * 软件---多个或者一个进程【黑心工厂】---多个或者一个线程【黑心工人】
 * 线程创建方式三种:
 * 1.使用Thread类创建线程,编写步骤
 *                      1.类继承Thread线程类
 *                      2.run方法--线程功能
 *                      3.start方法--启动线程
 * 优点；使用比较方便,
 * 缺点：拓展性弱，继承线程,无法继承其他类【java类继承  只能继承一个】
 * 子类继承Thread，重写run方法,不利于线程复用
 * 2.Runnable接口--创建线程  步骤
 *                      1.子类实现Runnable
 *                      2.Runnable父类引用指向子类【没有start方法】
 *                      3.创建Thread类,Runnable对象传入Thread构造器中
 *                      4.启动线程【start方法】
 * 3.匿名内部类方式---Lambda方式
*/
public class RunableAPI {
    public static void main(String[] args) {
        //2.Runnable父类引用指向子类
        Runnable WBG=new MyRunnable();
        //线程必须是start方法
        //3.创建Thread类--Runnable对象传入Thread构造器中
        Thread JDG=new Thread(WBG);
        //4.启动线程
        JDG.start();

        Runnable LNG=new MyRunnable1();
        Thread TES=new Thread(LNG);
        TES.start();

    }
}
class MyRunnable implements Runnable {
    public void run() {
        //专门线程--提供功能方法 run()
        for (int i = 0; i < 20; i++) {
            System.out.println("还他妈戴着眼镜呢,他们人呢,我徒弟呢,我徒弟呢！！！");
        }
    }
}
class MyRunnable1 implements Runnable{
    public void run() {
        //专门线程--提供功能方法 run()
        for(int i=0;i<20;i++){
            System.out.println("哇徒弟,团长我跟你没完！！！");
        }
    }
}